package com.lmc.gobang.utils;

import org.springframework.util.DigestUtils;

import java.util.UUID;

public class SecurityUtil {
    //加密
    public static String encryptPassword(String password) {
        //1.生成一个随机盐值（uuid）
        String salt = UUID.randomUUID().toString();
        //2.用md5算法对（盐值+密码）进行加密
        String md5DigestAsHex = DigestUtils.md5DigestAsHex((salt + password).getBytes());
        //3.返回将盐值拼接上加密后的密文
        return salt + md5DigestAsHex;
    }

    /**
     *
     * @param password    明文密码即用户输入的密码
     * @param encryptedPassword 数据库中存储的加密后的密文
     * @return
     */
    public static boolean checkPassword(String password, String encryptedPassword) {
        //1.先从密文中获取到盐值
        String salt = encryptedPassword.substring(0, 36);
        //2.对用户输入的密码进行加密
        String md5DigestAsHex = salt+DigestUtils.md5DigestAsHex((salt + password).getBytes());
        //3.返回比较后的结果
        return md5DigestAsHex.equals(encryptedPassword);
    }
}
